[アップデート] AWS Lambda でPython3.10ランタイムがサポートされました
大阪オフィスの小倉です。
LambdaランタイムでPython3.10がサポートされました。
Python3.10自体は2021年の10月にリリースされています。
Python3.10での新機能は、上記AWSブログでも紹介されていますが、公式ドキュメントはもちろんのこと、Python.jpのサイトも参考になります。
動作確認
以下の簡単なコードで動作するか確認します。 Python3.10で導入されたパターンマッチング(match-case)を使ってみました。
import sys def lambda_handler(event, context): match sys.version_info: case [major, minor, micro, releaselevel, serial]: # 5つの要素を持つリストやタプルにマッチ print(f'major={major} minor={minor} micro={micro} releaselevel={releaselevel} serial={serial}') case _: print('Invalid')
正しく動作していそうですね。
Lambdaコンテナ用のベースイメージもPython3.10が用意されたとの事なので、こちらも試してみます。
Dockerfile
FROM public.ecr.aws/lambda/python:3.10 COPY app.py ./ CMD ["app.lambda_handler"]
app.pyに、前述のテストコードを記載しておき、ECRにPushした後、コンテナLambdaを作成、実行してみます。
こちらも正しく動作していそうですね。
IaCツール関係では、CloudFormationの他、以下でデプロイできることを確認できました。
- AWS SAM CLI 1.80.0
- AWS CDK 2.75.1 (Python3.10対応は2.75.0で導入)
まとめ
待ちに待ったPythonの新バージョンランタイムが来てくれました。 新しい機能も気になりますが、個人的には文法エラーメッセージの改善がなされたことで、 文法誤りが見つけやすくなり、Python初学者にも優しくなるのが良いと思いました。
次はPython3.11への対応も期待して待ちたいと思います。